package ar.uba.fi.tecnicas.vista;

import java.awt.Point;

import javax.swing.JLabel;
import javax.swing.JTextField;

import ar.uba.fi.tecnicas.vista.PanelFabrica.IFabricaObserver;

public class PanelArreglarMaquina extends PanelOperacion implements IFabricaObserver
{
	protected static final long serialVersionUID = 0;

	private JLabel lblPosicion;
	private Point posicion;
	private JTextField txtPorcentajeArreglo;
	
	public PanelArreglarMaquina(PanelControles panelControles)
	{
		super(panelControles);
	}

	@Override
	protected void asignarEventos() 
	{
		panelControles.getFrameJuego().agregarObserverPanelFabrica(this);
	}

	@Override
	protected void inicializarComponentes() 
	{
		this.lblPosicion = new JLabel("Posicion seleccionada");
		this.txtPorcentajeArreglo = new JTextField();
		
		this.componentes.add(this.lblPosicion);
		this.componentes.add(this.txtPorcentajeArreglo);
	}

	@Override
	protected void realizarOperacion() 
	{
		double porcentajeArreglo = 0;
		
		try 
		{
			porcentajeArreglo = Double.valueOf(this.txtPorcentajeArreglo.getText());
		} 
		catch (NumberFormatException e) {}
		
		this.panelControles.getFrameJuego().arreglarMaquina(this.posicion, porcentajeArreglo);
	}

	@Override
	protected void terminarOperacion() 
	{
		panelControles.getFrameJuego().quitarListenerPanelFabrica(this);
	}
	
	public void posicionSeleccionada(Point posicion)
	{
		this.posicion = posicion;
		this.lblPosicion.setText("(" + posicion.x + ", " + posicion.y + ")");
	}
}
